package com.smart.mq.listener;

import com.smart.mq.dto.OrderDto;
import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;

@Component
@Slf4j
@RocketMQMessageListener(consumerGroup = "hello-consumer-group", topic = "test-msg")
public class ExampleMsgListener implements RocketMQListener<OrderDto> {
    /**
     * 去重表
     * 幂等性
     * http 请求方式
     * 数据库
     * 保存 需要做幂等性判断
     * 更新操作
     * 1. 1  10  udpate   quantity=10  where  pid=1
     *
     *
     * 1. 1  10   update  quantity-= 10  where  pid=1  幂等性判断
     *
     * 删除
     * 查询
     *
     * 创建订单  redis  存订单号 10
     *
     * @param message
     */
    @Override
    public void onMessage(OrderDto message) {
        //从数据中通过订单号
        String orderSn = message.getOrderSn();
        if (!StringUtil.isNullOrEmpty(orderSn)) {
            // 先判断去重表中是否 存在该记录
//            如果存在就表示该记录已经执行  执行不执行更新库存的代码
            //更新库存
            //保存订单号到去重表

        }
    }
}
